QUATZ'S WEB PAGE

Bilgisayar  |   Diğer Şeyler  |   Kontak  |   Download



Telnet/Netcat ile IRC kullanmak

Giriş

Bu yazı size IRC sunucularına nasıl bağlanacağınızı ve onlari Telnet veya Netcat ( L0pht tarafından yapılmış, güçlü bir ağ programı) ile nasıl kullanacağınızı öğretecek. Bunu yapabilmek için IRC protokolünü, yani; IRC alıcınızın (mIRC, BitchX, EPIC, xchat veya başka herhangi bir IRC alıcısı) IRC sunucularıyla irtibat kurabilmek için kullandığı dili öğrenmemiz gerekecek.

IRC protokolünü öğrenebilmeniz için iki yol var. Biri, IRC protokolüyle ilgili olan RFC 1459'u (RFC, Request For Comments'ın kısaltmasıdır. RFC'ler, İnternet standartlarını belirleyen IETF -Internet Engineering Task Force- tarafından yazılmış, herkese açık poliçelerdir.) okuyarak olabilir, diğer bir yol için de pratik bir özet olan bu yazıyı okuyabilirsiniz.

Bu yazının size öğretmeyecekleri: ircd programlarının (genellikle port 6667'den bağlantıları dinleyen ve sonra da kendileriyle bağlantı kuran host ile etkileşen programlar, yani; IRC daemonları) nasıl çalıştığı, bir IRC kanalının/sunucusunun nasıl yönetildiği, IRC'in nasıl kullanıldığı (Sanırım bunu şu ana kadar biliyorsunuz. Eğer bilmiyorsaniz, "yeni başlayanlar için mIRC" yazılarından birini okuyun.) vs... Bu yazı size sadece IRC alıcınızın IRC sunucularıyla nasıl iletişim kurduğunu ve bunu, o alıcıların birinin yardımı olmadan nasıl yapabileceğinizi öğretecek.

O zaman, bu neye yarar?

"O zaman bu bilgi neye yarar? Neden bunun yerine bir IRC alıcısı kullanmayayım ki?" diye kendi kendinize soruyor olmalısınız.

Pekala, cevap olarak: yapabilirsiniz. Bir alıcı kullanmak; protokolü öğrenmekten, sunucuya ham bir bağlantı kurmaktan ve komutları kendi kendinize uygulamaktan her zaman çok daha kolaydır. Fakat, bu bilginin kullanışlı ve işe yarar olabileceği birkaç durum var:

     -İçinde herhangi bir IRC alıcısı yüklü olmayan, kamusal bir bilgisayar kullanırken; bir IRC alıcısı indirmek veya bir shell hesabından (eğer bir hesabınız varsa) herhangi bir IRC alıcısı kullanmak yerine bu yolu deneyebilirsiniz. Çünkü tek istediğiniz en çok sevdiğiniz IRC kanalını çabucak ziyaret etmek. Pekala bu ve buna benzer durumlar olabilir.
     -Aşağıdaki etkileyici numaralar bölümünde sıralanmış numaralardan birini denemek istediğinizde.

Nasıl yapılıyor?

Her şeyden önce; Telnet, Netcat veya ham bir bağlantı açmanıza izin veren başka herhangi bir program açın. Telnet'in nasıl kullanıldığını bildiğinizi varsayıyorum... Bu bir, yeni başlayanlar için telnet yazısı değil. Genellikle IRC sunucularına port 6667'den bağlanabilirsiniz, fakat değişik IRC sunucuları 6660'tan 6669'a kadar olan portlarda çalışan daemonlara sahip olabilirler.

Bağlandığınızda, birkaç satırdan oluşan yazılarla karşılanmalısınız. IRC sunucusu size bildiriler göndermeyi bitirdiğinde, onu user komutunu kullanarak karşılamalısınız. Bu komutu takma adınız ("kullanıcı adı" olarak tanımlanır), hostname'iniz, sunucu adınız (sunucunun kullanıcılarin kimlikleriyle ilgili "yalan söylemediklerini" kesinleştirmek icin yaptığı bir tanımlama. Artık kullanımda olmadığından, sadece localhost yazın. ) ve "gerçek adınız" (gerçek adınız olmak zorunda değil. İstediğiniz her şey olabilir.) izlemelidir. Örneğin:

user Quatz localhost localhost :Metin yazarı Son parametrenin, gerçek adın, iki noktayla ayrıldığına dikkat edin. Birden fazla kelimeden olusan her parametre IRC'de iki noktayla ayrılmak zorundadır. Bununla ilgili daha çok örneği sonra göreceğiz.

Şimdi, ilk karşılamayı ve tanımlamayı hallettiğimize göre, IRC servisini kullanmaya başlayabiliriz. Ama önce, eğer bir "ping" (buna benzer bir şey olmalıdır: ping :1234567 veya bunun gibi : ping :212.1.134.138 ) alırsanız , sonunda aynı sıralama sayısını veya IP'yi içeren bir "pong" ile cevap vermeniz gerektiğini hatırlamalısınız.

Bilgi molası: Ping nedir?

Ping, adını, denizaltıların ve bazı hayvanların yolladığı ses olan ''sonar ping'' den alır. Ses bir nesneye çarptığında geri döner.Dönüş sinyaline pong denir ve bu belli bir nesnenin belli bir uzaklıkta olduğu sonucuna varmak için kullanılır. (Yarasaları hatırlayın.). Bu, ping yollandıktan sonra pong'un dönüş süresi hesaplanarak yapılabilir.

İnternet pingleri de bunlara oldukça benzer. Bu pingler; TCP pingleri de olmasına rağmen (fakat bunlar nadiren kullanılır) , internet pingleri genelde ICMP yankı_isteği paketleridir. IRC kendine özgü bir tür pinge sahiptir. Bu ping, hem sunucu tarafından kullanıcının online olup olmadığını kontrol etmek için, hem de başka bir kullanıcının ne kadar ''lag'' lediğini (bir paketin kendi bilgisayarından başka birinin bilgisayarına ne kadar sürede gideceğini) öğrenmek isteyen bir kullanıcı tarafından yollanabilir.

Diğer kullanıcılar tarafından yollanan pinglere cevap vermek zorunda değilsiniz ama eğer sunucu tarafından yollanan pinglere cevap vermezseniz bir ping zaman aşımı mesajıyla düşürülürsünüz (sunucunun konfigürasyonuna bağlı olarak, genelde 60 veya 90 saniyeden sonra). pong :ip_adresi ile veya pong :sıralama_sayısı (sequence number) ile cevap verin.

Bilgi molasi: Sıralama sayıları nedir?

Pingler iki nokta ve ardından bir numarayla geleceklerdir. Bu numara sunucunun IP adresi (örn: ping :212.1.134.138) veya pingin sıralama sayısı olabilir (örn: ping : 1234567). İki noktalı ve ardından da size yollanan numaraya (ya yollayanın IP adresi ya da pingin sıralama sayısı) sahip bir pong ile cevap vermelisiniz.

Bir IP adresinin ne olduğunu bildiğinizi farz ediyorum fakat bir ihtimal sıralama sayılarının ne olduğunu bilmiyor olabilirsiniz. Her şeyi düzene koymak için, bir sıralama sayısı; bir dosya alıyorken paketlerin biri geç gelirse, dosyanın karışmaması ve belli bir bölüme ait parçaların başka bir bölümde ortaya çıkmaması amacıyla, alıcının bilgisayarının hangi paketin önce gönderildiğini bilip bilmediğinden emin olmak için TCP paketlerine verilen bir numaradır.

IRC'de, pingler için olan sıralama sayıları değişik bir amaca sahiptir - sunucunun hangi ping'in hangi pong'a ait olduğunu bilmesi için. Örneğin: Eğer IRC sunucusu size bir ping yolladıktan 30 saniye sonra başka bir ping yolladığında, ilk pingin ardından yollanan pong ikinciden bir saniye sonra varırsa, IRC sunucusu o pongun ikinci pinge ait olup olmadığını ve sizin lagınızın 1 saniye olduğunu ya da o pongun ilk pinge ait olup olmadığını ve sizin lagınızın 31 saniye olduğunu nasıl bulur? Bu sorun sıralama sayılarıyla çözülebilir - kendilerinin oluşmasına neden olan pinglerin taşıdığı sıralama sayılarının aynısını taşıyarak ponglar geri dönünce, diğer taraf da hangi pong'un hangi ping'le ilişkili olduğunu bilecek.

Şimdi gerçekten IRC servisinin kullanılışına geçeceğiz. Alıştığınız komutların bircoğu, /join ve /mode gibi, telnet üzerinden sadece slashleri olmadan çalışıyor. Yani, #quatz kanalına girebilmek için sadece

join #quatz

yazın.

Şimdi, #quatz kanalında "selam beyler, yazımı okurken eğleniyor musunuz?" demek için

privmsg #quatz :selam beyler, yazımı okurken egleniyor musunuz?

yazın. (iki noktayı hatırladınız mı? Söylemek istediğiniz şey ne olursa olsun, sadece bir kelime olmadıkça önüne iki nokta koymanız gerekecek.) . Kanal operatörleri kanalın modunu, kanala girmeden konuşmak gibi şeyleri imkansız yapabilmek için mode komutuyla değiştirmedikçe, bir kanalda oraya girmeden konuşabilirsiniz (bazen kullanışlı oluyor, *sırıtma!!!* )

Birine özel bir mesaj yollamak için, aynı komutu kullanın; fakat #quatz veya diğer herhangi bir kanalın adını öteki kişinin takma adıyla değiştirin. Örneğin:

privmsg Quatz :selam Quatz, nasılsın?

Ident ile ilgili notlar

Bazı IRC sunucuları sizden bir ident daemon çalıştırmanızı istiyor. Çoğu IRC alıcısı bir identd (ident daemon) ile birlikte geliyor, fakat sizin şu anki durumunuzda harici bir ident daemon indirmeniz, yüklemeniz ve çalıştırmanız gerekiyor.

Bazı etkileyici numaralar

Eğer şöyle bir şey alırsanız:

" :nick!user@ip-address PRIVMSG your-nick :_VERSION_ "

O zaman bu demektir ki biri sizi versiyonlamaya çalışıyor! Eğer deneyimli bir IRC kullanıcısıysanız, versiyonlamanın birine ctcp versiyon isteği yollamak olduğunu bilirsiniz. Çoğu alıcılar otomatik olarak alıcının versiyonuyla karşılık verirler; fakat sizin durumunuzda versiyon isteklerine kendiniz karşılık verme yetkisine sahip oluyorsunuz! Bunu şu komutu uygulayarak yapın:

NOTICE nick :_VERSION Telnet version 1.0b _

Bu, bazılarının bir kaşını kaldırmasına yol açacaktır... ;-)

Yapabileceğiniz diğer bir eğlenceli şey ise bu bildiriyi sizden versiyon isteğinde bulunmayan kişilere yollamak. Bunu kendiniz de deneyin! Bu numara birçok kişinin kafasını karıştıracaktır.

/quote veya /raw u bir IRC alıcısından kullanmak

Bildiğim kadarıyla, her IRC alıcısı, IRC alıcısı aracılığıyla server'a komutlar yollamanıza izin verir. Bunu önce /quote veya /raw, (kullandığınız IRC alıcısına bağlı olarak) ardından da komutu yazarak yapabilirsiniz. Örnegin:

/quote privmsg #quatz :selam beyler, yazımı okurken eğleniyor musunuz?

Deneyin!

Dezavantajlar

Rahatsızlık ve zahmetli olmak (dediğim gibi, bir alıcıyla IRC kullanmak çok daha kolay) dışında bir alıcı olmadan IRC kullanmanın çoğu dezavantajı pinglerden kaynaklanıyor. Eğer bilgisayarınızın başından ayrılıp birkaç dakika sonra geri dönerseniz, kendinizi büyük ihtimalle ping zaman aşımı yüzünden düşürülmüş olarak bulursunuz. Bu, size yollanan bir ping mesajına zamanında bir pong ile cevap verememenizden kaynaklanıyor. Eğer bir IRC alıcısı kullanıyor olsaydınız, o, pingleri otomatik olarak cevaplardı.

Diğer bir sorun da bir aptal tarafından pinglerle taşırıldığınızda (buffer overflow) ortaya çıkıyor... Bu, bir alici olmadan IRC kullanıyorsanız ciddi bir sorun olabilir.